home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Word / Ae-An / Alpha.20.release.cpt / Alpha.2.0.rsrc / STR#_129.txt < prev    next >
Encoding:
Text File  |  1990-08-24  |  26.4 KB  |  1,311 lines

  1. ^        beginning of line
  2.  
  3. $        end of line
  4.  
  5. .        any character except newline
  6.  
  7. [...]    character class, can use ranges such as '0-9' 
  8.  
  9.          inside classes
  10.  
  11. [^...]   negated character class
  12.  
  13. *        zero or more occurences of the previous pattern
  14.  
  15.  
  16.  
  17. '\' is the escape character. Regular expressions 
  18.  
  19. constructed from one of the above elements can be 
  20.  
  21. concatenated to other regular expressions to create larger 
  22.  
  23. regular regular expressions. 
  24.  
  25.  
  26.  
  27. EXAMPLE: A regular expression to look for the next function 
  28.  
  29.          declaration might be:
  30.  
  31.  
  32.  
  33.               ^[^ \t#]*(.*)$
  34.  
  35.  
  36.  
  37. Regular expressions are very powerful, but unfortunately 
  38.  
  39. my first pass is a recursive function that is rather slow 
  40.  
  41. on 8MHz machines. This WILL change (I work on a 
  42.  
  43. refurbished ~1984 machine, so it hurts me as much as 
  44.  
  45. anyone else).
  46.  
  47.  
  48.  
  49.  
  50.  
  51. Defining and Using File Sets
  52.  
  53. =================================
  54.  
  55.  
  56.  
  57. File Sets are used to specify a list of files for ALPHA 
  58.  
  59. to use for functions such as 'createTagsFile', and multi-
  60.  
  61. file search. File sets are defined by loading a file set 
  62.  
  63. definition. The syntax for file set definitions is as 
  64.  
  65. follows:
  66.  
  67.  
  68.  
  69.     ( fileSet <file-set-name> "<complete-path-name>"* )
  70.  
  71.  
  72.  
  73. For example:
  74.  
  75.  
  76.  
  77. (fileSet edit1
  78.  
  79.     "jpl341:Pete:Alpha.101:edit:bindings.c"
  80.  
  81.     "jpl341:Pete:Alpha.101:edit:center.c")
  82.  
  83.  
  84.  
  85. defines a fileset named 'edit1' which contains the files 
  86.  
  87. "bindings.c" and "center.c".
  88.  
  89.  
  90.  
  91. Functions that use file sets operate on the "current" 
  92.  
  93. fileset, which is specified by the 'fileSet' variable. 
  94.  
  95. This variable can be changed by loading a new definition 
  96.  
  97. for that variable, or selecting the "File Sets..." menu 
  98.  
  99. item from the "Customie" menu.
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111. Customizing ALPHA
  112.  
  113. =================================
  114.  
  115. The AlphaBits file allows you to customize ALPHA to your 
  116.  
  117. tastes. There are three different types of statements in 
  118.  
  119. the Alphabit file:
  120.  
  121.  
  122.  
  123. ‚Ä¢ Key Bindings    
  124.  
  125.  
  126.  
  127.   Any function or loaded macro can be bound to any single 
  128.  
  129.   keystroke. One way to bind a function is with a 
  130.  
  131.   statement such as:
  132.  
  133.   
  134.  
  135.       (bind '<character>' [modifier string] funcName)
  136.  
  137.           
  138.  
  139.   where c is a character, 'modifier string' is a string
  140.  
  141.   containing one or more of:
  142.  
  143.       c   - command modifier
  144.  
  145.       o   - option modifier
  146.  
  147.       s   - shift modifier
  148.  
  149.       z   - control modifier
  150.  
  151.       e   - escape modifier      
  152.  
  153.       x   - prefixChar modifier
  154.  
  155.   
  156.  
  157.   The following line binds cmd-shift-f to the function 
  158.  
  159.   'forwardChar':
  160.  
  161.   
  162.  
  163.       (bind 'f' <cs> forwardChar)
  164.  
  165.   
  166.  
  167.   This form actually converts the ascii code into a US 
  168.  
  169.   keycode through a hard-coded table unless the var 
  170.  
  171.   'convertToCodes' is set to 'off', which foreign keyboard 
  172.  
  173.   owners will want to do. A second form of binding allows 
  174.  
  175.   you to bind the rest of the keys on your keyboard, 
  176.  
  177.   including function keys:
  178.  
  179.  
  180.  
  181. (bind '\<2-digit hex key code>' [modifier string] funcName)
  182.  
  183.  
  184.  
  185.   The following line binds F13 to the function '
  186.  
  187.   forwardChar' on a datadesk-101 keyboard:
  188.  
  189.  
  190.  
  191.       (bind '\6f'  forwardChar)
  192.  
  193.  
  194.  
  195.   The key code for any given key can be obtained by using 
  196.  
  197.   the 'keyCode' function. It is important to recognise 
  198.  
  199.   that both forms are machine-dependent. The ascii chars 
  200.  
  201.   are converted to key codes through lookup in a hardcoded 
  202.  
  203.   table. If this was not done, the char in the quotes 
  204.  
  205.   would also have to reflect the modifier keys, (i.e. the 
  206.  
  207.   binding for control-a would have to have a 'control-a' 
  208.  
  209.   between the single quotes instead of an 'a'). In both 
  210.  
  211.   forms, the modifier string is optional. To use ALPHA 
  212.  
  213.   with an original mac keyboard, uncomment the line:
  214.  
  215.  
  216.  
  217.       "#define OLDMAC ....."
  218.  
  219.  
  220.  
  221.   The loaded bindings will actually be a superset of the
  222.  
  223.   necessary mappings for the original mac keyboards, the
  224.  
  225.   extra bindings are used for a DataDesk 101 keyboard.
  226.  
  227.  
  228.  
  229.   Because the hardcoded key codes reflect only the US 
  230.  
  231.   keyboards, another form was added which bypasses the 
  232.  
  233.   keycode conversion. However, the ascii code must be 
  234.  
  235.   entered in decimal. Whereas the normal binding for 
  236.  
  237.   'beginningOfLine' is:
  238.  
  239.  
  240.  
  241.       (bind 'a' <z> beginningOfLine)
  242.  
  243.  
  244.  
  245.   the ascii binding will be:
  246.  
  247.  
  248.  
  249.       (ascii 1  <z> beginningOfLine)
  250.  
  251.  
  252.  
  253.   because 1 is the ascii code for control-a. The modifier 
  254.  
  255.   string is optional in this form as well.
  256.  
  257.  
  258.  
  259.   Note that menu item command equivalents take precedence
  260.  
  261.   over bindings. Command equivalents can only be changed
  262.  
  263.   by using an external tool like 'ResEdit'.
  264.  
  265.  
  266.  
  267. ‚Ä¢ Setting Variables 
  268.  
  269.   There are many user-definable integer variables in ALPHA. 
  270.  
  271.   Variables are defined as follows:
  272.  
  273.   
  274.  
  275.       (set sillyVar 1)
  276.  
  277.   
  278.  
  279.   The values 'on' and 'off' map to '1' and '0', 
  280.  
  281.   respectively, so the above example could be written:
  282.  
  283.   
  284.  
  285.       (set sillyVar on)
  286.  
  287.  
  288.  
  289.   There are also a few string variables, which are bound in
  290.  
  291.   an analogous fashion:
  292.  
  293.  
  294.  
  295.       (set dumString "the string")
  296.  
  297.  
  298.  
  299. ‚Ä¢ Macro Definition
  300.  
  301.   See Macros
  302.  
  303.  
  304.  
  305. ‚Ä¢ The 'User' Menu
  306.  
  307. Alpha allows the the user to build up a custom menu which
  308.  
  309. contains names of functions or macros that just HAVE to be
  310.  
  311. in the menus, as opposed to being merely callable through
  312.  
  313. the bindings. The syntax is dead simple. See the 
  314.  
  315. 'AlphaBits' file for an example. The following meta
  316.  
  317. characters can be embedded in the strings:
  318.  
  319.  
  320.  
  321. As described in the section "Creating a Menu in Your 
  322.  
  323. Program", the following meta-characters may be embedded
  324.  
  325. in the data string:
  326.  
  327.  
  328.  
  329.    Meta-character     Usage
  330.  
  331.    --------------     -----
  332.  
  333.  
  334.  
  335.     ; or Return       Separates multiple items
  336.  
  337.     ^                 Followed by an icon number, adds 
  338.  
  339.                       that icon to the item
  340.  
  341.     !                 Followed by a character, marks the
  342.  
  343.                       item with that character
  344.  
  345.     <                 Followed by B, I, U, O, or S, sets 
  346.  
  347.                       the character style of the item
  348.  
  349.     /                 Followed by a character, associates
  350.  
  351.                       a keyboard equivalent with the item
  352.  
  353.     (                 Disables the item
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361. ALPHA's default setup uses the command key like any other 
  362.  
  363. mac application. Problems arise in ALPHA's emulation of 
  364.  
  365. emacs key bindings. Emacs uses an escape key and a 
  366.  
  367. control key. 
  368.  
  369.  
  370.  
  371. For the Classic Macs, we map the escape key to the 
  372.  
  373. backquote key and use the option key for the emacs command 
  374.  
  375. key. Newer Macs have both an escape and a command key, so 
  376.  
  377. this is not necessary. The default MacII template is set 
  378.  
  379. up w/ the 'control' key for emacs command combinations, 
  380.  
  381. while the classic mac template uses the option key.
  382.  
  383.  
  384.  
  385. Bindings, variable definitions, and macros can all be 
  386.  
  387. loaded in one of three ways:
  388.  
  389.  
  390.  
  391.   1) The 'AlphaBits' file is always loaded at startup.
  392.  
  393.   2) The "Load Window" item of the Customize menu loads
  394.  
  395.      an entire window at once.
  396.  
  397.   3) If a selection is hilited, the above item changes to
  398.  
  399.      "Load Selection", and only the hilited text get loaded.
  400.  
  401.  
  402.  
  403. ALPHA supports unlimited undo and redo. This means that 
  404.  
  405. every supported (everything but 'insertFile') change that 
  406.  
  407. you make to your file can be undone, and then redone if 
  408.  
  409. you undid :-) too far. Bear in mind that once you create 
  410.  
  411. new modifications, all changes that you have undone but 
  412.  
  413. not redone are lost. If this is confusing, just play with 
  414.  
  415. it for a while.
  416.  
  417.  
  418.  
  419. Another point to bear in mind is that saving a buffer to 
  420.  
  421. disk currently flushes the undo buffer. I did this because 
  422.  
  423. of memory constraints, but if enough people would prefer 
  424.  
  425. some other way of limiting the amount of undo information 
  426.  
  427. (say, like Preditor), we can do that too.
  428.  
  429.  
  430.  
  431.  
  432.  
  433. Alpha command (ACMD) code resources can be loaded and 
  434.  
  435. executed to transform the current selection. An 'ACMD' 
  436.  
  437. resource is just a code resource that takes a string 
  438.  
  439. pointer as an argument and returns a string pointer as 
  440.  
  441. it's result. The input string is allocated w/ 'NewPtr', 
  442.  
  443. and the output string must be allocated w/ NewPtr as well. 
  444.  
  445. This output string could be the same block of memory that 
  446.  
  447. was passed in to the ACMD, or it could be a block that the 
  448.  
  449. ACMD allocated itself (say, if the ACMD wanted to return a 
  450.  
  451. larger chunk of text than was passed in). In this case, 
  452.  
  453. the ACMD should de-allocate the input string w/ DisposPtr 
  454.  
  455. when it is no longer needed. The input string will always 
  456.  
  457. be at least size 1 and is null-terminated. Carriage return 
  458.  
  459. characters delimit individual lines. In summary:
  460.  
  461.  
  462.  
  463.   ‚Ä¢ A new pointer is allocated with size equal to the
  464.  
  465.     size of the current selection + 1.
  466.  
  467.  
  468.  
  469.   ‚Ä¢ The selection (if any) is copied into the new pointer. 
  470.  
  471.     The string will be null-terminated w/ carriage
  472.  
  473.     returns to delimit lines.
  474.  
  475.  
  476.  
  477.   ‚Ä¢ The first 'ACMD' resource in the chosen file (type 
  478.  
  479.     'AEXT') is loaded, and called as a 'C' function w/ 
  480.  
  481.     the string as it's only parameter. 
  482.  
  483.  
  484.  
  485.   ‚Ä¢ The ACMD transforms the string, and returns it as it's
  486.  
  487.     result. Therefore, your code resource's 'main' routine
  488.  
  489.     should be declared as type 'char *', taking a single 
  490.  
  491.     parater of type 'char *'.
  492.  
  493.  
  494.  
  495.   ‚Ä¢ The original selection is replaced with the transformed
  496.  
  497.     text.
  498.  
  499.  
  500.  
  501.   ‚Ä¢ The ACMD resource is released.
  502.  
  503.  
  504.  
  505. ACMD's that are in the 'Alpha' resource fork are added to 
  506.  
  507. the ACMD menu under 'Utilities' and are callable from 
  508.  
  509. macros (macros allow ACMD functions to be bound to 
  510.  
  511. keystrokes). ACMDs can be executed from other files of 
  512.  
  513. type 'ACMD', but are not added to the menu. To 
  514.  
  515. permanently add an 'ACMD' to Alpha, use ResEdit.
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.     
  524.  
  525.  
  526.  
  527. Defining and Using Macros 
  528.  
  529. ========================== 
  530.  
  531. ALPHA supports keyboard macros which record a sequence of 
  532.  
  533. keystrokes to be played back later w/ the function '
  534.  
  535. executeKeyboardMacro' (this function is also in the '
  536.  
  537. Utilities' menu) or written into a buffer by selecting 
  538.  
  539. 'Dump Function' from the 'Utilities' menu. The dump 
  540.  
  541. function prompts you for a macro name, which must consist 
  542.  
  543. only of letters of the alphabet, digits, and '_'. 
  544.  
  545.  
  546.  
  547. These macro declarations can then be edited, loaded, and 
  548.  
  549. bound to keystrokes. Loading a macro or a binding is 
  550.  
  551. accomplished by hiliting the text and selecting the "Load 
  552.  
  553. Selection" item of the 'Customize' window. If no text is 
  554.  
  555. hilited, the entire window is loaded by the same command. 
  556.  
  557. Macros can be bound to keys in exactly the same manner as 
  558.  
  559. functions (see above). 
  560.  
  561.  
  562.  
  563. Macros lines can be as simple as the name of a function or 
  564.  
  565. previously defined function. Macros can set variables. The 
  566.  
  567. functions 'saveVars' and 'restoreVars' have been provided 
  568.  
  569. to let macros leave the environment in the same state that 
  570.  
  571. they found it. The keyword "type" has been provided to 
  572.  
  573. enter text. One good way to learn to write macros is to 
  574.  
  575. record a macro and dump it to a file. Play w/ it, change 
  576.  
  577. things around, add functions, and reload it. If you want 
  578.  
  579. to keep it, just put it in the 'AlphaBits' file. Several 
  580.  
  581. example macros have been provided in the 'AlphaBits' file.
  582.  
  583.  
  584.  
  585. Macros can be of any length, but individual lines must be 
  586.  
  587. less than 80 characters in length, or all hell will break 
  588.  
  589. loose!
  590.  
  591.  
  592.  
  593. Currently there is little or no error checking done in 
  594.  
  595. macros, so if you use the iteration count to execute a 
  596.  
  597. macro on the next 100 lines, but there are only 20 lines 
  598.  
  599. in the file, hmmm...
  600.  
  601.  
  602.  
  603. Several commands which prompt for input actually compile 
  604.  
  605. the result of the prompt into the macro, as opposed to 
  606.  
  607. again prompting every time the macro is executed. These 
  608.  
  609. commands include the search and replace commands, 'ACMD' 
  610.  
  611. calls, and setting named marks and clipboards. To see what 
  612.  
  613. is compiled in these cases, try creating such a macro and 
  614.  
  615. dumping it to a buffer.
  616.  
  617.  
  618.  
  619. The following are commands that can only be executed from
  620.  
  621. macros, see the distributed 'AlphaBits' file for examples
  622.  
  623. of use and syntax.
  624.  
  625.  
  626.  
  627. ‚Ä¢ acmd - execute named acmd, which must be in the 
  628.  
  629.   resource fork of Alpha
  630.  
  631. ‚Ä¢ clipsearch - search for contents of named clipboard
  632.  
  633. ‚Ä¢ copyclip - copy selected text to named clipboard
  634.  
  635. ‚Ä¢ cutclip - cut selected text to named clipboard
  636.  
  637. ‚Ä¢ define - used to name macro
  638.  
  639. ‚Ä¢ deleteclip - delete named clipboard
  640.  
  641. ‚Ä¢ deletemark - delete named mark
  642.  
  643. ‚Ä¢ fileSet - used to define file sets
  644.  
  645. ‚Ä¢ goto - goto named mark
  646.  
  647. ‚Ä¢ mark - create named mark
  648.  
  649. ‚Ä¢ menu - used to instantiate the user menu
  650.  
  651. ‚Ä¢ replace - replace selection
  652.  
  653. ‚Ä¢ replaceFindAgain - replace and find again
  654.  
  655. ‚Ä¢ restoreVars - restore all numeric vars to saved values
  656.  
  657. ‚Ä¢ saveVars - save all numeric vars
  658.  
  659. ‚Ä¢ search - search for string, based on current flag values
  660.  
  661. ‚Ä¢ set - used to set variable contents (mirrors command that
  662.  
  663.   works outside macros as well
  664.  
  665. ‚Ä¢ type - inserts string into current window
  666.  
  667. ‚Ä¢ yankclip - yank from named clipboard
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675. Defining and Using 'C' Tags
  676.  
  677. ==========================
  678.  
  679.  
  680.  
  681. ALPHA supports the use of tags to find declarations of 
  682.  
  683. functions. When searching for a tag, ALPHA looks for the 
  684.  
  685. tag file specified by the "tagFile" string variable. 
  686.  
  687. ALPHA's tag generating routines use the regular expression 
  688.  
  689. in the string variable "funcExpr" to look for function 
  690.  
  691. declarations. In other words, we don't parse the text. If 
  692.  
  693. you declare your functions differently, you can change " 
  694.  
  695. funcExpr" to suit your own style. The default expression 
  696.  
  697. is the following:
  698.  
  699.  
  700.  
  701.   "^[^ \t#]*(.*)$""
  702.  
  703.   
  704.  
  705. Note that not only can you customize this to your style 
  706.  
  707. of 'C' declarations, you could also use it to generate 
  708.  
  709. tags for other languages. The only thing you need to bear 
  710.  
  711. in mind is that the tag routines use the complete word 
  712.  
  713. previous to the first '(' in the selected line as the 
  714.  
  715. function's name. If there is no '(' in the selected line, 
  716.  
  717. the last word in the line is used. Therefore, Pascal 
  718.  
  719. procedures w/ or w/o parameters can be identified.
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739. Explanation of Variables
  740.  
  741. ==========================
  742.  
  743.  
  744.  
  745. When variables are set:
  746.  
  747.  
  748.  
  749. backupFolder      ‚Ä¢ if 'useBackupFolder' is true, backup 
  750.  
  751.                     files are placed in the folder specified
  752.  
  753.                     by the complete pathname in 'backupFolder'.
  754.  
  755. convertToCodes    ‚Ä¢ if non-zero, all bindings of the form
  756.  
  757.                     "bind 'c' ...." are internally converted
  758.  
  759.                     to key codes. Those w/ foreign keyboards
  760.  
  761.                     will want this turned off.
  762.  
  763. defHeight         ‚Ä¢ If 'fullScreen' set, this is default 
  764.  
  765.                     height in pixels.
  766.  
  767. defWidth          ‚Ä¢ If 'fullScreen' set, this is default 
  768.  
  769.                     width in pixels.
  770.  
  771. elecLBrace        ‚Ä¢ Electric 'C' left brace on.
  772.  
  773. elecRBrace        ‚Ä¢ Electric 'C' right brace on.
  774.  
  775. electricSemi      ‚Ä¢ Electric 'C' semicolon on.
  776.  
  777. fillColumn        ‚Ä¢ Number of columns use as limit for
  778.  
  779.                     "fill" functions. See 'leftFillColumn'
  780.  
  781. fontSize          ‚Ä¢ Default size of fonts used to display 
  782.  
  783.                     files.
  784.  
  785. forward           ‚Ä¢ set when searching forward. The 'findFile' 
  786.  
  787.                     dialog always resets this before 
  788.  
  789.                     displaying.
  790.  
  791. fullNames         ‚Ä¢ Windows display pathnames instead of 
  792.  
  793.                     mere file names.
  794.  
  795. fullScreen        ‚Ä¢ If on, all windows are start in the 
  796.  
  797.                     same place, and have the dimension 
  798.  
  799.                     specified by 'defHeight' and 'defWidth'.
  800.  
  801. funcExpr          ‚Ä¢ Set to the regular expression that 
  802.  
  803.                     ALPHA uses to find function declarations.
  804.  
  805. ignoreCase        ‚Ä¢ Search is case-insensitive.
  806.  
  807. includePath       ‚Ä¢ A list of the path-names of the 
  808.  
  809.                     directories to search for include files,
  810.  
  811.                     separated by semi-colons, such as:
  812.  
  813.                       "Disk:C:edit;Disk:C:THINK C:include;"
  814.  
  815.                     The current directory can be included
  816.  
  817.                     by using consecutive semi-colons as:
  818.  
  819.                       "Disk:C:edit;Disk:C:THINK C:include;;"
  820.  
  821. indentOnCR        ‚Ä¢ Auto-indent on carriage return.
  822.  
  823. keepBackup        ‚Ä¢ Keeps old version in <file>.BAK
  824.  
  825. leftFillColumn    ‚Ä¢ Number of blanks at left of lines.
  826.  
  827. matchWords        ‚Ä¢ Match words on searches.
  828.  
  829. noRemapOption     ‚Ä¢ When set, does not overlay system
  830.  
  831.                     resource w/ one that does not have
  832.  
  833.                     "dead keys". If TRUE, some option 
  834.  
  835.                     sequences are not usable. Owners of
  836.  
  837.                     foreign keyboard will want this turned
  838.  
  839.                     on.
  840.  
  841. numWinsToTile     ‚Ä¢ specifies the number of windows tile
  842.  
  843.                     commands should affect.
  844.  
  845. regExpr           ‚Ä¢ flag set if searchAgain should look
  846.  
  847.                     for a regular expression
  848.  
  849. startWithNew      ‚Ä¢ When one, ALPHA comes up w/ new 
  850.  
  851.                     buffer. When 0, ALPHA comes up w/
  852.  
  853.                     a prompt for a file. When 2, ALPHA
  854.  
  855.                     comes up w/ nothing.
  856.  
  857. suppressHeader    ‚Ä¢ Suppress header on printed pages.
  858.  
  859. tabSize           ‚Ä¢ Default number of characters per tab.
  860.  
  861. tagFile           ‚Ä¢ complete path-name of tag file
  862.  
  863. useBackupFolder   ‚Ä¢ if true, backup files are placed in
  864.  
  865.                     the folder specified by 'backupFolder'
  866.  
  867. wordWrap          ‚Ä¢ if true, lines exceeding 'fillColumn'
  868.  
  869.                     in length are automatically wrapped
  870.  
  871.                     during normal text insertion (typing)
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879. Function Summary
  880.  
  881. ========================== 
  882.  
  883.  
  884.  
  885. Many of the commands manipulate 'regions'. Regions come 
  886.  
  887. from emacs and are used to refer to all of the text 
  888.  
  889. between the current 'mark', and the insertion point. The 
  890.  
  891. current 'mark' is set by the 'setMark' command, or 
  892.  
  893. commands such as 'beginningOfBuffer' or 'endOfBuffer'. 
  894.  
  895. You will always know when the mark is set because the 
  896.  
  897. status line will say 'Mark set'. All of the region 
  898.  
  899. commands also work on blocks of text that are currently 
  900.  
  901. selected.
  902.  
  903.  
  904.  
  905. Several functions deal with 'C' functions. As stated 
  906.  
  907. above, 'C' functions are detected not through parsing, but 
  908.  
  909. through pattern-matching the string "^[^ \t#]*(.*)$"". 
  910.  
  911.  
  912.  
  913. ‚Ä¢ abortEm - aborts whatever is currently happening
  914.  
  915. ‚Ä¢ backwardCharSelect - extends selection one char back
  916.  
  917. ‚Ä¢ backwardChar - moves insertion one char back
  918.  
  919. ‚Ä¢ backwardDeleteWord - deletes previous work
  920.  
  921. ‚Ä¢ backwardWord - moves insertion one char back
  922.  
  923. ‚Ä¢ balance - selects smallest set of parens, braces, or 
  924.  
  925.   brackets that encloses the current selection
  926.  
  927. ‚Ä¢ beginningBufferSelect - extend selection to the 
  928.  
  929.   beginning of the buffer
  930.  
  931. ‚Ä¢ beginningLineSelect - extend selection to the 
  932.  
  933.   beginning of the line
  934.  
  935. ‚Ä¢ beginningOfBuffer - move insertion to the beginning 
  936.  
  937.   of the buffer
  938.  
  939. ‚Ä¢ beginningOfLine - move insertion to the beginning of 
  940.  
  941.   the line
  942.  
  943. ‚Ä¢ capitalizeRegion - capitalize all words in selected 
  944.  
  945.   region 
  946.  
  947. ‚Ä¢ capitalizeWord - capitalize word
  948.  
  949. ‚Ä¢ carriageReturn - insert carriage return, indent new 
  950.  
  951.   line if the variable 'indendOnCR' is set to 'on'
  952.  
  953. ‚Ä¢ closeAll - close all windows
  954.  
  955. ‚Ä¢ copy - copy region
  956.  
  957. ‚Ä¢ copyClip - copy to named clipboard
  958.  
  959. ‚Ä¢ createTagFile - searches all files in current file set 
  960.  
  961.   and saves the locations of any function declarations in 
  962.  
  963.   a file called 'cTAGS'.
  964.  
  965. ‚Ä¢ currentPosition - displays number of lines and current
  966.  
  967.   position (row and col) in the status line.
  968.  
  969. ‚Ä¢ cut - deletes and saves region
  970.  
  971. ‚Ä¢ cutClip - cut to named clipboard
  972.  
  973. ‚Ä¢ deleteChar - delete char AFTER cursor
  974.  
  975. ‚Ä¢ deleteWord - delete word after cursor
  976.  
  977. ‚Ä¢ doNew - opens an untitled window
  978.  
  979. ‚Ä¢ doSave - saves current window
  980.  
  981. ‚Ä¢ doElectricSemi - insert semicolon, and if '
  982.  
  983.   electricSemi' is set, insert a carriage return and 
  984.  
  985.   indent the new line
  986.  
  987. ‚Ä¢ doTab - insert a tab
  988.  
  989. ‚Ä¢ doQuit - quits ALPHA
  990.  
  991. ‚Ä¢ doZoom - zooms the current window
  992.  
  993. ‚Ä¢ downcaseRegion - changes all uppercase letters to 
  994.  
  995.   lowercase in current region
  996.  
  997. ‚Ä¢ downcaseWord - changes all uppercase letters to 
  998.  
  999.   lowercase in current word
  1000.  
  1001. ‚Ä¢ dumpMacro - prompts the user to name the current 
  1002.  
  1003.   keyboard macro and then dumps a definition of the macro 
  1004.  
  1005.   into the current buffer
  1006.  
  1007. ‚Ä¢ electricLeftBrace - if 'electricLBrace' is set, make 
  1008.  
  1009.   sure that the brace is on a new line, open a further 
  1010.  
  1011.   line and indent to the "proper" level. 
  1012.  
  1013. ‚Ä¢ electricRightBrace - insert a right brace on the 
  1014.  
  1015.   correct line and open a new line
  1016.  
  1017. ‚Ä¢ endBufferSelect - extend selection to the end of the 
  1018.  
  1019.   buffer
  1020.  
  1021. ‚Ä¢ endLineSelect - extend selection to the end of the line
  1022.  
  1023. ‚Ä¢ endKeyboardMacro - stop recording keyboard macro
  1024.  
  1025. ‚Ä¢ endOfBuffer - move insertion to the end of the buffer
  1026.  
  1027. ‚Ä¢ endOfLine - move insertion to the end of the line
  1028.  
  1029. ‚Ä¢ exchangePointAndmark - exchange the current 'mark' 
  1030.  
  1031.   w/ the current insertion point
  1032.  
  1033. ‚Ä¢ executeKeyboardMacro - execute the current keyboard 
  1034.  
  1035.   macro
  1036.  
  1037. ‚Ä¢ fileInfo - prompts for a file, and displays type, 
  1038.  
  1039.   creator, sizes of both data and resource forks, last
  1040.  
  1041.   modification time, and creation time
  1042.  
  1043. ‚Ä¢ fileRemove - prompts for a file, and removes it
  1044.  
  1045. ‚Ä¢ fileStats - displays chars, words, and lines for current
  1046.  
  1047.   window
  1048.  
  1049. ‚Ä¢ fillParagraph - inserts/deletes lines and moves text 
  1050.  
  1051.   in the current paragraph in order for all text to fit 
  1052.  
  1053.   between the columns 'leftFillColumn' and 'fillColumn'. A 
  1054.  
  1055.   paragraph is here defined as any block of text delimited 
  1056.  
  1057.   by white-space lines
  1058.  
  1059. ‚Ä¢ fillRegion - as above for current region
  1060.  
  1061. ‚Ä¢ findTag - prompt user for a function name and attempt 
  1062.  
  1063.   to use the file 'cTAGS' to locate the function's 
  1064.  
  1065.   definition
  1066.  
  1067. ‚Ä¢ findFile - open a new file
  1068.  
  1069. ‚Ä¢ forwardCharSelect - extend selection one character 
  1070.  
  1071.   forward
  1072.  
  1073. ‚Ä¢ forwardChar - move insertion one character forward
  1074.  
  1075. ‚Ä¢ forwardWord - move insertion one word forward
  1076.  
  1077. ‚Ä¢ freeMem - give a rough approximation of the current 
  1078.  
  1079.   memory reserves of ALPHA
  1080.  
  1081. ‚Ä¢ getAscii - displays the ASCII code for character at 
  1082.  
  1083.   current insertion ponit
  1084.  
  1085. ‚Ä¢ getHelp - display help dialog
  1086.  
  1087. ‚Ä¢ getPathName - present the user w/ a SFGetFIle dialog 
  1088.  
  1089.   and paste the complete path-name of the chosen file into 
  1090.  
  1091.   the current window
  1092.  
  1093. ‚Ä¢ gotoLine - go to a line number
  1094.  
  1095. ‚Ä¢ gotoMark - goto named mark, use 'mark' in macros.
  1096.  
  1097. ‚Ä¢ includeFile - expand the current selection to include 
  1098.  
  1099.   the suffix and use the var 'includePath' to try to 
  1100.  
  1101.   find the include file. 
  1102.  
  1103. ‚Ä¢ insertAscii - prompts for an ASCII code and inserts into
  1104.  
  1105.   text.
  1106.  
  1107. ‚Ä¢ insertFile - prompts for a file name and inserts the
  1108.  
  1109.   corresponding file into the current window. Not
  1110.  
  1111.   undoable.
  1112.  
  1113. ‚Ä¢ insertToTop - make the line that the insertion point 
  1114.  
  1115.   is on the first line shown, and display the current line 
  1116.  
  1117.   number along w/ the total number of lines in the file
  1118.  
  1119. ‚Ä¢ iterationCount - allows actions to be repeated many 
  1120.  
  1121.   times. "option-u 44 =" inserts 44 '='s into the current 
  1122.  
  1123.   window. Also can be used to execute any function or 
  1124.  
  1125.   macro (including the keyboard macro) many times.
  1126.  
  1127. ‚Ä¢ keyAscii - insert the ascii representation (in decimal)
  1128.  
  1129.   of the keydown event, plus a modifier string, if 
  1130.  
  1131.   necessary.
  1132.  
  1133. ‚Ä¢ keyCode - insert the key code along w/ a string 
  1134.  
  1135.   representing and modifiers into the current window. This 
  1136.  
  1137.   function can be used to create bindings in the '
  1138.  
  1139.   alphaBits' file.
  1140.  
  1141. ‚Ä¢ killLine - kill text from insertion point to the end 
  1142.  
  1143.   of the line. If the line has no text, delete the line 
  1144.  
  1145.   and move succeeding lines up one.
  1146.  
  1147. ‚Ä¢ killWindow - kill current window
  1148.  
  1149. ‚Ä¢ loadFile - loads hilited text, or entire window if 
  1150.  
  1151.   nothing is hilited. 'load'ing means that whatever 
  1152.  
  1153.   bindings or macro definitions are present in the loaded 
  1154.  
  1155.   text take effect
  1156.  
  1157. ‚Ä¢ markHilite - This is the 'Hilite' from the 'Edit' menu.
  1158.  
  1159.   If there is a currently hilited selection, the selection
  1160.  
  1161.   is unhilited, leaving the mark and the insertion point
  1162.  
  1163.   around the old selection. If there is not a selection,
  1164.  
  1165.   the region between the insertion point and the mark is
  1166.  
  1167.   selected.
  1168.  
  1169. ‚Ä¢ matchBrace - moves the insertion point to the 
  1170.  
  1171.   character that matches the character after the current 
  1172.  
  1173.   insertion point
  1174.  
  1175. ‚Ä¢ nextLineSelect - extend selection to the next line
  1176.  
  1177. ‚Ä¢ nextFunc - select first line of next 'C' function 
  1178.  
  1179.   declaration
  1180.  
  1181. ‚Ä¢ nextLine - move insertion point to next line
  1182.  
  1183. ‚Ä¢ nextWindow - select next window
  1184.  
  1185. ‚Ä¢ openLine - insert a new line following the current 
  1186.  
  1187.   one and move the insertion point to it
  1188.  
  1189. ‚Ä¢ pageBack - display previous screenful
  1190.  
  1191. ‚Ä¢ pageForward - display next screenful
  1192.  
  1193. ‚Ä¢ paste - insert the last chunk of text created by 'cut' 
  1194.  
  1195.   or 'copy'
  1196.  
  1197. ‚Ä¢ pasteClip - paste to named clipboard
  1198.  
  1199. ‚Ä¢ prefixChar - used to further modify the next keystroke 
  1200.  
  1201.   combination, in the same manner as using the shift key 
  1202.  
  1203.   in the next keystroke
  1204.  
  1205. ‚Ä¢ prevLineSelect - extend selection to the previous line
  1206.  
  1207. ‚Ä¢ prevFunc - hilite first line of previous 'C' function 
  1208.  
  1209.   declaration
  1210.  
  1211. ‚Ä¢ prevWindow - select previous window
  1212.  
  1213. ‚Ä¢ previousLine - move insertion point to the previous 
  1214.  
  1215.   line
  1216.  
  1217. ‚Ä¢ quickSort - sort the lines in the current region
  1218.  
  1219. ‚Ä¢ redo - redo the next action that has been undone but 
  1220.  
  1221.   not redone
  1222.  
  1223. ‚Ä¢ repeatSearchBackward - repeat search backward
  1224.  
  1225. ‚Ä¢ repeatSearchForward - repeat search forward
  1226.  
  1227. ‚Ä¢ restoreVars - restore variables to saved state, 
  1228.  
  1229.   see 'saveVars'
  1230.  
  1231. ‚Ä¢ revert - revert the file to it's last saved version
  1232.  
  1233. ‚Ä¢ saveVars - save variable state, see 'restoreVars'
  1234.  
  1235. ‚Ä¢ scrollDownLine - same action as that which occurs when 
  1236.  
  1237.   the down arrow in the vertical scrollbar is selected
  1238.  
  1239. ‚Ä¢ scrollUpLine - same action as that which occurs when 
  1240.  
  1241.   the up arrow in the vertical scrollbar is selected
  1242.  
  1243. ‚Ä¢ searchEnter - use current selection for future searches
  1244.  
  1245. ‚Ä¢ searchRall - replace all futher occurances in the 
  1246.  
  1247.   current file
  1248.  
  1249. ‚Ä¢ searchReplace - replace the current selection
  1250.  
  1251. ‚Ä¢ searchRfa - replace the current selection and find 
  1252.  
  1253.   next occurance
  1254.  
  1255. ‚Ä¢ set - macro-only func to set var values, see examples
  1256.  
  1257. ‚Ä¢ setMark - set the current mark to the insertion point
  1258.  
  1259. ‚Ä¢ setNamedMark - set a named mark in a file, use 'mark' 
  1260.  
  1261.   in macros
  1262.  
  1263. ‚Ä¢ shiftRegionLeft - shifts the current region left a tab
  1264.  
  1265. ‚Ä¢ shiftRegionRight - shift the current region right a tab
  1266.  
  1267. ‚Ä¢ startEscape - used to further modify the next 
  1268.  
  1269.   keystroke combination, in the same manner as using the 
  1270.  
  1271.   shift key in the next keystroke
  1272.  
  1273. ‚Ä¢ startKeyboardMacro - start recording keyboard macro
  1274.  
  1275. ‚Ä¢ tileFull - make all windows "full screen"
  1276.  
  1277. ‚Ä¢ tileHor - tile the windows horizontally
  1278.  
  1279. ‚Ä¢ tileOrder - offset each window from the previous by a 
  1280.  
  1281.   set horizontal and vertical amount
  1282.  
  1283. ‚Ä¢ tileVert - tile the windows vertically
  1284.  
  1285. ‚Ä¢ undo - undo the last action that has not been undone
  1286.  
  1287. ‚Ä¢ upcaseRegion - convert all lowercase letters to 
  1288.  
  1289.   uppercase in the current region
  1290.  
  1291. ‚Ä¢ upcaseWord - convert all lowercase letters to 
  1292.  
  1293.   uppercase in the current word
  1294.  
  1295. ‚Ä¢ winSearch - brings up search and replace dialog
  1296.  
  1297. ‚Ä¢ yank - insert the last piece of text that has been 
  1298.  
  1299.   'cut', 'copy'd, or deleted in any way. Note that 'yank' 
  1300.  
  1301.   is different from 'paste' in that 'paste' doesn't know 
  1302.  
  1303.   about text that was merely deleted. Ordinarily, "the 
  1304.  
  1305.   last deleted text" refers to text that was deleted in 
  1306.  
  1307.   one keystroke, but consecutive 'killLines' have their 
  1308.  
  1309.   text glommed together for this purpose.
  1310.  
  1311.